package risk.control.application.utils.mmkv;

import android.content.Context;

import com.tencent.mmkv.MMKV;

import java.util.Set;

/**
 * MMKV加密存储工具类
 * 仅包含数据加密存储和读取功能
 */
public class MMKVUtils {

    private static final String CRYPT_KEY = "Xz8pLmJqKkQ9P1s7Xj0="; // 16字节加密密钥
    private static MMKV secureMMKV;

    // 初始化（只需调用一次）
    public static void init(Context context) {
        if (secureMMKV == null) {
            String rootDir = MMKV.initialize(context);
            secureMMKV = MMKV.mmkvWithID("rick_secure_data", MMKV.SINGLE_PROCESS_MODE, CRYPT_KEY);
        }
    }

    // ========== 存储方法 ==========

    public static void putString(String key, String value) {
        if (key == null) return;
        secureMMKV.encode(key, value);
    }

    // ========== 读取方法 ==========

    public static String getString(String key) {
        return secureMMKV.decodeString(key, "");
    }

    // ========== 其他方法 ==========

    public static void remove(String key) {
        if (key == null) return;
        secureMMKV.removeValueForKey(key);
    }

    public static boolean contains(String key) {
        if (key == null) return false;
        return secureMMKV.containsKey(key);
    }

    public static void clearAll() {
        secureMMKV.clearAll();
    }
}
